package br.com.condominio.view.beans;

import java.sql.SQLException;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import br.com.condominio.controller.HistoricoVisitaController;
import br.com.condominio.view.vo.EnumStatusVisita;
import br.com.condominio.view.vo.HistoricoVisitaVO;

/**
 * @author marco.freitas
 * 
 */
@ManagedBean(name = "historicoVisitaMBean")
@SessionScoped
public class HistoricoVisitaMBean extends SessionMBean {

	private final HistoricoVisitaController controller;
	private HistoricoVisitaVO histVisitaVO = new HistoricoVisitaVO();
	private DataModel<HistoricoVisitaVO> listagemHistorico;

	public HistoricoVisitaMBean() throws ClassNotFoundException, SQLException {
		histVisitaVO = new HistoricoVisitaVO();
		controller = new HistoricoVisitaController();
	}

	public HistoricoVisitaVO getHistVisitaVO() {
		return histVisitaVO;
	}

	public void setHistVisitaVO(HistoricoVisitaVO histVisitaVO) {
		this.histVisitaVO = histVisitaVO;
	}

	public void setListagemHistorico(
			DataModel<HistoricoVisitaVO> listagemHistorico) {
		this.listagemHistorico = listagemHistorico;
	}

	public String traduzirStatusHistorico(final int codHistorico) {
		return EnumStatusVisita.getFromCode(codHistorico).getLabel();
	}

	public DataModel<HistoricoVisitaVO> getListagemHistorico()
			throws SQLException, ClassNotFoundException {
		List<HistoricoVisitaVO> lista = controller.getAllHistoricoVisitas();
		listagemHistorico = new ListDataModel<HistoricoVisitaVO>(lista);
		return listagemHistorico;
	}
}
